Optional Chaining
今まで以下のように書いていたもののショートハンドのシンタックス
code:ts
const x = foo != null && foo.bar != null && foo.bar.baz() // いままで
const x = foo?.bar?.baz() // use OptionalChaining
JSにコンパイルするときは今まで通り
簡潔にかけて嬉しい!
もちろんstrictNullChecks: trueじゃないと、元々エラーにならない
関数呼び出しにも使える
code:ts
add?.(2, 3)
確かにエラーで「TypeError: "hogehoge" is not a function」よくみるもんなmrsekut.icon
const x = foo?.bar?.baz() ?? 'baz'
配列に対しても使える
?.[]
Swiftにもある
参考
他言語についても、詳しい